First-level Analysis

Simon Vandekar

Objectives

  • These slides will introduce first-level fMRI analysis
    • Part 1: time series analysis
    • Part 2: task fMRI
    • Part 3: resting state fMRI

What is fMRI?

Time series analysis

Temporal filtering

Task fMRI Analysis

Convolution

Temporal derivative

Temporal filtering

Despicable Me

Time series

dm = readRDS('../data/RBC/stimulusTimeSeries/despicableMe/emotionBlocks.rds')
plot(dm$emo_valence, type='p', ylab='Emotional Valence', xlab='Time', main='"Despicable Me" emotional ratings',
     col=as.numeric(dm$positiveBlock) + as.numeric(dm$negativeBlock) -1)
  • To input the stimulus time series into FSL, we provide a 3 column text file with the following info
    • Onset, Duration, Value
  • Include temporal derivative.
# path to fsf file for preprocessing for first participant
# /Users/vandeks/Library/CloudStorage/Box-Box/SMN/data/RBC/HBN_BIDS/sub-NDARAA306NT2/ses-HBNsiteRU/func/sub-NDARAA306NT2_ses-HBNsiteRU_task-movieDM_bold.feat/design.fsf
pos = rle(dm$positive)
pos$lengths[1] = pos$lengths[1] - 6
# first one starts at zero
pos$starts = c(0, cumsum(pos$lengths)[-length(pos$lengths)]+1)
# output needed by FSL
threeCol = data.frame(onset=pos$starts, duration=pos$lengths, value=pos$values)
write.table(threeCol[threeCol$value==1,], row.name=FALSE, sep=' ', col.names = FALSE, file='../data/RBC/stimulusTimeSeries/despicableMe/positiveStimulus.txt')
# /Users/vandeks/Library/CloudStorage/Box-Box/SMN/data//RBC/stimulusTimeSeries/despicableMe/positiveStimulus.txt